<?php

namespace App\Http\Middleware;

use Closure;
use DB;
class RoleOpenMiddleware
{
    /**
     * 进行权限检测
     * 功能：每刷新一次页面重新获取session值
     * 
     * @param     array       $data       获取管理员的所有属性 
     * @param     array       $operation  获取操作界面的属性
     * @return    无权限改动进行下一步操作
     */
    public function handle($request, Closure $next)
    {

        if(session('id')){
            $data = DB::table('roles')
            -> join('admin','admin.role_id','=','roles.id')
            -> where('admin.id','=',session('id'))
            -> select()
            -> first();

            $operation = DB::table('operation') -> lists('operation_open','operation_name');
            // 重新设定操作管理session
            session($operation);
            session($data);
            // 进行判断该用户，或者该角色是否被禁用
            if($data['admin_shield'] == 2 || $data['role_open'] == 2){
                $request -> session() -> flush();
            }
       }

        return $next($request);

    }
}
